Data communication networks may include various computers, servers, nodes, routers, switches, bridges, hubs, proxies, and other network devices coupled together and configured to pass data to one another. These devices will be referred to herein as “network elements.” Data is communicated through the data communication network by passing protocol data units, such as data frames, packets, cells, or segments, between the network elements by utilizing one or more communication links. A particular Protocol Data Unit (PDU) may be handled by multiple network elements and cross multiple communication links as it travels between its source and its destination over the network.
When a network element receives a request to transmit data to an unknown network address, the network element may attempt to obtain the routing information required to reach the unknown network address. There are several common ways of determining routing information for a PDU. For example, in an Ethernet network a request may be broadcast onto the network by the network element, to see if any of the other network elements know how to reach the particular address. When the broadcasting network element receives a reply it knows how to forward the Ethernet frame to the intended address. This occurs commonly in connection with a provider edge node that is required to map a particular customer address to a provider MAC Address so that the frame may be forwarded across the provider network. In this instance, the provider edge node may have routing information to reach all of the other provider edge nodes, but may not have routing information for all of the customer routes that are available through all of the other provider edge nodes. The provider edge node will need to determine which of the other provider edge nodes is able to reach the customer route before forwarding the PDU on toward that provider edge node.
Where the address requested is an IP address, a common way to find the network location of the resource associated with the IP address is to pass a request to a Domain Name Service (DNS). The DNS system is a hierarchical system that relies on caching more popular addresses on distributed DNS servers throughout the network, so that the lower level servers are able to handle many of the IP resolution requests without requiring the DNS root server or those servers higher up in the hierarchy to become involved. Specifically, a node with an unknown IP address will pass a request to its local DNS server and, if that server doesn't have the requisite information, it will pass the request further up the hierarchy until a server is reached that has a copy of the required information.
As the number of nodes on a provider network increases, and the number of customer routes available through the network increases, resolving route requests by broadcasting the requests to all nodes becomes increasingly inefficient. Specifically, broadcasting requests requires each node on the network to process each request which becomes inefficient as the number of nodes increases and as the number of requests increases.
Similarly, with the advent of IP telephony, the number of one-time requests for an IP addresses is expected to increase. For example, if the IP addresses being requested are associated with destinations of telephone calls being made on the network, it would be expected that a majority of the requests for routing information associated with these IP addresses would be one time requests since it is unlikely for many people to consistently call a same small set of telephone numbers. As the proportion of one time requests for IP addresses increases, the efficiencies of a the hierarchical nature of the DNS service may be expected to decrease, since multiple requests are increasingly unlikely to be made for the same IP address. Specifically, caching relatively recent requests for IP addresses may be expected to be of less value where it is increasingly unlikely that a second request for the same IP address will be received within a particular period of time. This may be expected to increase demand on the DNS root server and potentially cause the DNS service to become a bottleneck on the network.
Accordingly, it would be advantageous to provide a new way of making routing information available on a network.